package com.warom.sdg;

import android.util.Log;

import java.io.File;
import java.lang.reflect.Field;

/**
 * 反射帮助类
 * 用于处理可能需要反射访问的场景
 */
public class ReflectionHelper {
    private static final String TAG = "ReflectionHelper";

    /**
     * 获取File对象的路径，通过反射访问私有字段
     * 
     * @param file 文件对象
     * @return 文件路径，若访问失败则返回toString结果
     */
    public static String getFilePath(File file) {
        if (file == null) return null;
        
        try {
            // 正常方式获取路径
            String path = file.getAbsolutePath();
            return path;
        } catch (Exception e) {
            // 如果正常方式失败，尝试反射获取
            try {
                Field pathField = File.class.getDeclaredField("path");
                pathField.setAccessible(true);
                return (String) pathField.get(file);
            } catch (Exception ex) {
                Log.e(TAG, "无法通过反射获取文件路径", ex);
                // 返回toString结果作为后备选项
                return file.toString();
            }
        }
    }
} 